变量和数据类型
在编程中,变量是存储数据的容器,而数据类型则定义了这些数据的形式和操作。理解变量和数据类型是学习任何编程语言的基础,JavaScript也不例外。
1. 变量
变量是用于存储数据的标识符。在JavaScript中,变量可以通过var、let和const关键字来声明。
1.1 声明变量
-
var: 这是JavaScript中最早的变量声明方式。它具有函数作用域,意味着变量在函数内部声明时,其作用域仅限于该函数。var name = "Alice"; console.log(name); // 输出: Alice -
let: 这是ES6引入的变量声明方式。它具有块级作用域,意味着变量在块(如if语句、for循环等)内部声明时,其作用域仅限于该块。let age = 25; console.log(age); // 输出: 25 -
const: 这也是ES6引入的变量声明方式。它用于声明常量,一旦赋值就不能再改变。它同样具有块级作用域。const pi = 3.14159; console.log(pi); // 输出: 3.14159
1.2 变量的命名规则
- 变量名必须以字母、下划线(
_)或美元符号($)开头。 - 变量名可以包含字母、数字、下划线和美元符号。
- 变量名区分大小写。
- 变量名不能是JavaScript的关键字或保留字。
2. 数据类型
JavaScript是一种动态类型语言,这意味着变量的数据类型在运行时可以改变。JavaScript有以下几种基本数据类型:
2.1 基本数据类型
-
字符串(String): 用于表示文本数据。
let greeting = "Hello, World!"; console.log(greeting); // 输出: Hello, World! -
数字(Number): 用于表示数值数据,包括整数和浮点数。
let number = 42; console.log(number); // 输出: 42 -
布尔值(Boolean): 用于表示真或假。
let isTrue = true; console.log(isTrue); // 输出: true -
未定义(Undefined): 表示变量已声明但未赋值。
let undefinedVar; console.log(undefinedVar); // 输出: undefined -
空值(Null): 表示变量没有值。
let nullVar = null; console.log(nullVar); // 输出: null -
符号(Symbol): 这是ES6引入的一种新的数据类型,用于创建唯一的标识符。
let sym = Symbol("description"); console.log(sym); // 输出: Symbol(description)
2.2 复杂数据类型
-
对象(Object): 用于存储键值对集合。
let person = { name: "Alice", age: 25 }; console.log(person.name); // 输出: Alice -
数组(Array): 用于存储有序的值集合。
let numbers = [1, 2, 3, 4]; console.log(numbers[0]); // 输出: 1
3. 类型转换
JavaScript允许在不同数据类型之间进行转换。
3.1 隐式类型转换
JavaScript会自动进行类型转换,例如在算术运算中。
let num = "42";
console.log(num + 1); // 输出: 421 (字符串拼接)
console.log(num - 1); // 输出: 41 (隐式转换为数字)
3.2 显式类型转换
你可以使用内置函数进行显式类型转换。
-
Number(): 将其他类型转换为数字。let str = "42"; let num = Number(str); console.log(num); // 输出: 42 -
String(): 将其他类型转换为字符串。let num = 42; let str = String(num); console.log(str); // 输出: "42" -
Boolean(): 将其他类型转换为布尔值。let num = 0; let bool = Boolean(num); console.log(bool); // 输出: false
4. 实践练习
练习1: 变量声明与赋值
- 声明一个名为
firstName的变量,并赋值为你的名字。 - 声明一个名为
age的变量,并赋值为你的年龄。 - 使用
console.log输出这两个变量。
练习2: 数据类型转换
- 声明一个字符串变量
strNum,并赋值为"123"。 - 使用
Number()函数将strNum转换为数字。 - 使用
console.log输出转换后的结果。
练习3: 复杂数据类型
- 声明一个对象
person,包含name和age两个属性。 - 声明一个数组
hobbies,包含你喜欢的三项活动。 - 使用
console.log输出person对象的name属性和hobbies数组的第一个元素。
通过这些练习,你将更好地理解JavaScript中的变量和数据类型,为后续的学习打下坚实的基础。